package cn.eeepay.framework.model;

import com.alibaba.fastjson.annotation.JSONField;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 *  账单地
 * @author hzl 2020-11-12
 */
public class AccountAddress implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Integer id;

    /**
     * 地区表
     */
    private String address;

    /**
     * 是否单列市。 1:是，0:否
     */
    private Integer addressType;

    /**
     * 预留额度
     */
    private BigDecimal reservedAmount;

    /**
     * 账单地使用额度
     */
    private BigDecimal localUsed;

    /**
     * 非账单使用额度
     */
    private BigDecimal otherUsed;

    /**
     * 预留额度释放时间点
     */
    @JSONField(format="HH:mm:ss")
    private Date releaseTime;

    private String releaseTimeStr;

    /**
     * 交易最小金额
     */
    private BigDecimal minAmount;

    /**
     * 交易最大金额
     */
    private BigDecimal maxAmount;

    /**
     * 交易开始时间
     */
    @JSONField(format="HH:mm:ss")
    private Date startTime;

    private String startTimeStr;
    /**
     * 交易结束时间
     */
    @JSONField(format="HH:mm:ss")
    private Date endTime;

    private String endTimeStr;

    /**
     * 状态， 0：关，1：开
     */
    private Integer openStatus;

    /**
     * 不参与集群地区轮询 0:参与 1：不参与
     */
    private Integer joinGroupPolling;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date lastUpdateTime;

    /**
     * 总额度
     */
    private BigDecimal totalAmount;      //总额度

    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;


    private BigDecimal usedQuota;      //已使用额度

    private BigDecimal surplusQuota;                //剩余额度

    private String usePercent;          //使用百分比

    private Integer jumpId;

    private String groupName;

    private Integer jumpStatus;

    private String remark;

    private Date accountDate;

    public AccountAddress() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }


    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public BigDecimal getReservedAmount() {
        return reservedAmount;
    }

    public void setReservedAmount(BigDecimal reservedAmount) {
        this.reservedAmount = reservedAmount;
    }

    public BigDecimal getLocalUsed() {
        return localUsed;
    }

    public void setLocalUsed(BigDecimal localUsed) {
        this.localUsed = localUsed;
    }

    public BigDecimal getOtherUsed() {
        return otherUsed;
    }

    public void setOtherUsed(BigDecimal otherUsed) {
        this.otherUsed = otherUsed;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public BigDecimal getMinAmount() {
        return minAmount;
    }

    public void setMinAmount(BigDecimal minAmount) {
        this.minAmount = minAmount;
    }

    public BigDecimal getMaxAmount() {
        return maxAmount;
    }

    public void setMaxAmount(BigDecimal maxAmount) {
        this.maxAmount = maxAmount;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getOpenStatus() {
        return openStatus;
    }

    public void setOpenStatus(Integer openStatus) {
        this.openStatus = openStatus;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public BigDecimal getUsedQuota() {
        return usedQuota;
    }

    public void setUsedQuota(BigDecimal usedQuota) {
        this.usedQuota = usedQuota;
    }

    public BigDecimal getSurplusQuota() {
        return surplusQuota;
    }

    public void setSurplusQuota(BigDecimal surplusQuota) {
        this.surplusQuota = surplusQuota;
    }

    public String getUsePercent() {
        return usePercent;
    }

    public void setUsePercent(String usePercent) {
        this.usePercent = usePercent;
    }

    public String getReleaseTimeStr() {
        return releaseTimeStr;
    }

    public void setReleaseTimeStr(String releaseTimeStr) {
        this.releaseTimeStr = releaseTimeStr;
    }

    public String getStartTimeStr() {
        return startTimeStr;
    }

    public void setStartTimeStr(String startTimeStr) {
        this.startTimeStr = startTimeStr;
    }

    public String getEndTimeStr() {
        return endTimeStr;
    }

    public void setEndTimeStr(String endTimeStr) {
        this.endTimeStr = endTimeStr;
    }

    public Integer getJumpId() {
        return jumpId;
    }

    public void setJumpId(Integer jumpId) {
        this.jumpId = jumpId;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public Integer getJumpStatus() {
        return jumpStatus;
    }

    public void setJumpStatus(Integer jumpStatus) {
        this.jumpStatus = jumpStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }


    public Integer getAddressType() {
        return addressType;
    }

    public void setAddressType(Integer addressType) {
        this.addressType = addressType;
    }

    public Integer getJoinGroupPolling() {
        return joinGroupPolling;
    }

    public void setJoinGroupPolling(Integer joinGroupPolling) {
        this.joinGroupPolling = joinGroupPolling;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public Date getAccountDate() {
        return accountDate;
    }

    public void setAccountDate(Date accountDate) {
        this.accountDate = accountDate;
    }
}
